Шаг 12. Добавляем выборочно изменения в индекс
Порой нужно добавить в индекс только часть изменений из файла. Например, вы выполняли в одном файле несколько задач, но ни одна не была закоммиченна. В итоге вам нужно сначала выбрать изменения, которые относятся к одной задаче и закоммитить их, а потом повторить всё то же самое для другой задачи. В этом вам поможет команда git add с опцией -p (развёрнуто --patch).
Для начала внесём изменения в index.html:
- изменим язык с
enнаru; - кодировку
UTF-8напишем строчными буквамиutf-8; - изменим заголовок документа
<title>; - добавим заголовок
<h1>с текстом «Главная страница».
Теперь посмотрим, какой статус имеет файл index.html. Проверяем с помощью команды git status.
Сейчас у файла модифицированный статус, так как он уже начал отслеживаться Git. Все новые внесённые изменения будут помечаться таким статусом.
Введём в Git Bash команду git add -p и нажмём Enter.
После ввода команды мы увидим наши изменения, а также буквы, которые мы можем использовать для работы с данным режимом.
Что делает каждая буква:
y— добавляет одну часть изменений в индекс.n— не добавляет одну часть изменений в индекс.q— выходит из этого режима и не добавляет никаких изменений в индекс.a— добавляет все части изменений в индекс.d— не добавляет все части изменений в индекс.s— разбивает текущий фрагмент кода на более мелкие куски (то, что нам нужно).e— позволяет вручную отредактировать часть кода (открывает дополнительное окно редактора), а затем добавляет изменения в индекс.?— выводит справку по каждой букве (на латинице).
Нам понадобится буква s — она разобьёт фрагмент кода на более мелкие куски. Введём её и нажмём Enter.
Изменения разбились на четыре мелкие части. Также у нас появились дополнительные буквы, которые тоже сейчас разберём.
j— откладывает часть изменений (на случай, если вы не знаете, что пока с ней делать) и переходит к следующей такой же отложенной части. Если отложенной части нет, то просто переходит к следующей части.J— откладывает часть изменений и переходит к следующей части. Тут важно понимать разницу: при вводе этой буквы перебрасывает к следующей части, а при вводе маленькойjперебрасывает к следующей отложенной части, если такая есть.g— позволяет перейти к определённой части (нужно будет ввести номер)./— поиск части по заданному регулярному выражению.
Выберем первую часть изменений — вводим y и далее нажимаем Enter, для всех последующих частей проставьте n.
Если мы сейчас введём команду git status, то увидим, что файл находится сразу в двух состояниях.
Это нормально. Часть изменений добавлена в индекс, а оставшиеся три части всё ещё находятся в статусе «Модифицированные» и ждут, когда их тоже добавят в индекс или просто отменят.
Далее нам нужно закоммитить изменения, добавленные в индекс, с помощью команды git commit -m "текст коммита". Текст можно написать, используя соглашения о коммитах. Например, feat: the page language has been changed — в переводе означает «Язык страницы был изменён».
Последнее, что сделаем — отправим коммит в удалённый репозиторий с помощью команды git push.
Перейдём в репозиторий и убедимся, что коммит действительно отправлен.
Задание: оставшиеся три изменения сделайте сами. Действуйте точно так же — через команду git add -p. Сделайте три коммита и отправьте на удалённый репозиторий.